// 编写导航路由
const express = require('express')
const multer = require('multer')
const router = express.Router()
const { v4: uuidv4 } = require('uuid')
// 引入jwt token工具
const JwtUtil = require('../../utils/jwt')
const getCreateTime = require('../../utils/getCreateTime')
// 导入导航数据模块
const navigateModel = require('../../model/navigateModel')
// 添加导航
// 参数：token , nav_text
router.post('/add', async (req, res) => {
    let nav_text = req.body.nav_text
    let nav_id = uuidv4()
    let token = req.body.token
    let nav_create_time = getCreateTime.now()
    // 请求需要进行token校验 
    let jwt = new JwtUtil(token)
    // 返回一个对象 
    let result = jwt.verifyToken()
    // 验通过执行下一步，否则就返回登陆信息不正确
    if (result == 'err') {
        res.send({
            code: -1,
            msg: '登录已过期,请重新登录。'
        });
    } else {
        if (result.data) {
            let user_id = result.data;
            // 调用添加导航方法
            await navigateModel.add(nav_id, nav_text,user_id,nav_create_time)
                .then(
                    data => {
                        res.send(data)
                    }
                )
                .catch(
                    err => {
                        res.send({ code: 500, msg: '服务器异常...', err })
                    }
                )
        }
    }
})
// 删除导航
router.get('/remove', async (req, res) => {
    let token = req.query.token
    let nav_id = req.query.nav_id
    // 请求需要进行token校验 
    let jwt = new JwtUtil(token)
    // 返回一个对象 
    let result = jwt.verifyToken()
    // 验通过执行下一步，否则就返回登陆信息不正确
    if (result == 'err') {
        res.send({
            code: -1,
            msg: '登录已过期,请重新登录。'
        });
    } else {
        // 用户是否在线
        if (result.data) {
            // 调用删除导航方法（根据导航ID操作）
            await navigateModel.remove(nav_id)
                .then(
                    data => {
                        res.send(data)
                    }
                )
                .catch(
                    err => {
                        res.send({ code: 500, msg: '服务器异常...', err })
                    }
                )
        }
    }
})
// 查询导航
router.get('/list', async (req, res) => {
    // 调用查询导航方法
    await navigateModel.list()
        .then(
            data => {
                res.send(data)
            }
        )
        .catch(
            err => {
                res.send({ code: 500, msg: '服务器异常...', err })
            }
        )
})
// 修改导航
router.get('/modify', async (req, res) => {
    let nav_id = req.query.nav_id
    let nav_text = req.query.nav_text
    let token = req.query.token
    // 请求需要进行token校验 
    let jwt = new JwtUtil(token)
    // 返回一个对象 
    let result = jwt.verifyToken()
    // 验通过执行下一步，否则就返回登陆信息不正确
    if (result == 'err') {
        res.send({
            code: -1,
            msg: '登录已过期,请重新登录。'
        });
    } else {
        // 调用查询导航方法
        await navigateModel.modify(nav_id,nav_text)
            .then(
                data => {
                    res.send(data)
                }
            )
            .catch(
                err => {
                    res.send({ code: 500, msg: '服务器异常...', err })
                }
            )
    }
})

// 查询导航接口
router.get('/detail', async (req, res) => {
    // 接收前端传递
    let nav_id = req.query.nav_id;
    let token = req.query.token;
    // 请求需要进行token校验 
    let jwt = new JwtUtil(token);
    // 返回一个对象 
    let result = jwt.verifyToken();
    // 验通过执行下一步，否则就返回登陆信息不正确
    if (result == 'err') {
        res.send({
            code: -1,
            msg: '登录已过期,请重新登录'
        });
    } else {
        if (result.data) {
            // 调用获取广告列表的方法
            await navigateModel.detail(nav_id)
                .then(
                    data => {
                        res.send(data)
                    }
                )
                .catch(
                    err => {
                        res.send({ code: 500, msg: '服务器异常...', err })
                    }
                )
        }
    }

})

//路由挂在模块系统下
module.exports = router;